#include "Wizard.hh"

Wizard::Wizard()
    : Character("Wizard",
        "In the ossuary crypts beneath 12th-century Prague, heretical alchemists distilled stillborns' spinal fluid into Soul Ink—a mercury-like substance that wrote truths capable of warping reality.  When the Church discovered their Quicksilver Pact with fractal-faced demons, they bricked the scholars alive inside prismatic glass coffins.  Over centuries, the mathematicians' screaming breath fogged the glass into Mirrormoss (Lichen paradoxus), which dissolved their bones into sentient equations.  These 'Number-Ghosts' now possess any who solve their engraved riddles, stretching victims' skin into living parchment scrolls that bleed Pythagorean ciphers."
        "The Arch-Algebraist manifests as seven suspended glass coffins rotating like a demonic armillary sphere, each containing a phase-shifting skeleton scribbling feverishly in molten gold.  Its attacks rewrite local physics: blood becomes acidic ink that erases victims' memories, while spoken words materialize as barbed numerals that embed in flesh.  Those who blink during battle find their eyelids calcified open, forced to witness the boss's True Form—a four-dimensional polyhedron whose angles birth screaming infant faces.  Shattering a coffin curses the attacker with Proofrot;  their wounds sprout quill feathers that write suicidal proofs using their spinal fluid.", 
        400, 50, 10) {}

Wizard::~Wizard() {}

Wizard::Wizard(const Wizard& other) : Character(other) {
    // Copy constructor logic if needed
}
Wizard& Wizard::operator=(const Wizard& other) {
    if (this != &other) {
        Character::operator=(other); // Call the assignment operator of the base class
    }
    return *this;
}

bool Wizard::attack(ICharacter& target) {
    unsigned damage = 2 * getAttack();
    heal(damage/6); // Magic attack
    if (target.takeDamage(damage)) {
        return true;
    }
    return false;
}